-- i64 test.

entry add = map2 (i64.+)
entry sub = map2 (i64.-)
entry mul = map2 (i64.*)
entry pow = map2 (i64.**)

-- ==
-- entry: add
-- input  { [0i64, 2i64, 9223372036854775807i64, 9223372036854775807i64]
--          [0i64, 2i64, 9223372036854775807i64, -2i64] }
-- output { [0i64, 4i64, -2i64,                  9223372036854775805i64] }

-- ==
-- entry: sub
-- input  { [2i64, 0i64, 9223372036854775807i64]
--          [2i64, 9223372036854775807i64, -2i64] }
-- output { [0i64, -9223372036854775807i64, -9223372036854775807i64] }

-- ==
-- entry: mul
-- input  { [2i64, 2i64,  -2i64,  -2i64, 6442450941i64]
--          [3i64, -3i64, 3i64, -3i64, 2147483647i64] }
-- output { [6i64, -6i64, -6i64, 6i64, -4611686031312289789i64] }

-- ==
-- entry: pow
-- input  { [2i64, 4021i64, 4021i64, 4021i64, 4021i64, 4021i64, 4021i64, 4021i64, 4021i64]
--          [3i64, 0i64, 1i64, 2i64, 3i64, 4i64, 5i64, 6i64, 7i64] }
-- output { [8i64, 1i64, 4021i64, 16168441i64, 65013301261i64, 261418484370481i64,
--           1051163725653704101i64, 2424947974056870057i64, -7611811309678305667i64] }
